package xx.iverson.file_manager.service;

import xx.iverson.file_manager.entity.FileInfo;

import java.util.List;

/**
 * xx.iverson.file_manager.service.FileInfoService
 * 描述：
 * on 2025/9/18-上午9:08
 *
 * @author weijx
 */
public interface FileInfoService {

    List<FileInfo> getAllFiles();

    FileInfo getFileById(Integer id);

    List<FileInfo> getFilesByCategoryId(Integer categoryId);

    boolean addFile(FileInfo fileInfo);

    boolean updateFile(FileInfo fileInfo);

    boolean deleteFile(Integer id);

    void incrementDownloadCount(Integer id);

    List<FileInfo> searchFilesByName(String name);

    List<FileInfo> searchFilesByCategoryAndName(Integer id, String query);

    /**
     * 根据一级分类ID查询文件
     */
    List<FileInfo> getFilesByLevel1Id(Integer level1Id);

    /**
     * 根据二级分类ID查询文件
     */
    List<FileInfo> getFilesByLevel2Id(Integer level2Id);

    List<FileInfo> searchFilesByLevel1AndName(Integer level1Id, String name);
}
